
package boids;

public class VehicleProperties
{
	public static final float	DEFAULT_COLLISION_LOOKAHEAD	= 50.0f;
	public static final float	DEFAULT_COLLISION_WIDTH			= 10.0f;
	public static final float	DEFAULT_COLLISION_RADIUS		= 20.0f;

	public static final float	DEFAULT_BOID_MAX_SPEED			= 2.5f;
	public static final float	DEFAULT_BOID_MAX_FORCE			= 0.1f;
	public static final float	DEFAULT_BOID_WANDER_DIST		= 40.0f;
	public static final float	DEFAULT_BOID_WANDER_RADIUS		= 20.0f;
	public static final float	DEFAULT_BOID_WANDER_OFFSET		= 0.2f;
	public static final float	DEFAULT_BOID_APPROACH_RADIUS	= 150.0f;
	public static final float	DEFAULT_BOID_FLEE_RADIUS		= 150.0f;

	private float					collisionLookahead				= DEFAULT_COLLISION_LOOKAHEAD;
	private float					colBoxWidth							= DEFAULT_COLLISION_WIDTH;
	private float					collisionRadius					= DEFAULT_COLLISION_RADIUS;

	private float					maxSpeed								= DEFAULT_BOID_MAX_SPEED;
	private float					maxForce								= DEFAULT_BOID_MAX_FORCE;
	private float					wanderDistance						= DEFAULT_BOID_WANDER_DIST;
	private float					wanderRadius						= DEFAULT_BOID_WANDER_RADIUS;
	private float					wanderOffset						= DEFAULT_BOID_WANDER_OFFSET;
	private float					approachRadius						= DEFAULT_BOID_APPROACH_RADIUS;
	private float					fleeRadius							= DEFAULT_BOID_FLEE_RADIUS;

	public VehicleProperties()
	{
	}

	/**
	 * @return the collisionLookahead
	 */
	public float getCollisionLookahead()
	{
		return collisionLookahead;
	}

	/**
	 * @return the colBoxWidth
	 */
	public float getColBoxWidth()
	{
		return colBoxWidth;
	}

	/**
	 * @return the collisionRadius
	 */
	public float getCollisionRadius()
	{
		return collisionRadius;
	}

	/**
	 * @return the boidMaxSpeed
	 */
	public float getMaxSpeed()
	{
		return maxSpeed;
	}

	/**
	 * @return the boidMaxForce
	 */
	public float getMaxForce()
	{
		return maxForce;
	}

	/**
	 * @return the boidWanderDistance
	 */
	public float getWanderDistance()
	{
		return wanderDistance;
	}

	/**
	 * @return the boidWanderRadius
	 */
	public float getWanderRadius()
	{
		return wanderRadius;
	}

	/**
	 * @return the boidWanderOffset
	 */
	public float getWanderOffset()
	{
		return wanderOffset;
	}

	/**
	 * @return the boidApproachRadius
	 */
	public float getApproachRadius()
	{
		return approachRadius;
	}

	/**
	 * @return the boidFleeRadius
	 */
	public float getFleeRadius()
	{
		return fleeRadius;
	}
	
	/**
	 * @param _collisionLookahead
	 *           the collisionLookahead to set
	 */
	public void setCollisionLookahead(float _collisionLookahead)
	{
		collisionLookahead = _collisionLookahead;
	}

	/**
	 * @param _colBoxWidth
	 *           the colBoxWidth to set
	 */
	public void setColBoxWidth(float _colBoxWidth)
	{
		colBoxWidth = _colBoxWidth;
	}

	/**
	 * @param _collisionRadius
	 *           the collisionRadius to set
	 */
	public void setCollisionRadius(float _collisionRadius)
	{
		collisionRadius = _collisionRadius;
	}

	/**
	 * @param _boidMaxSpeed
	 *           the boidMaxSpeed to set
	 */
	public void setMaxSpeed(float _boidMaxSpeed)
	{
		if (_boidMaxSpeed >= 0.0f)
		{
			maxSpeed = _boidMaxSpeed;
		}
	}

	/**
	 * @param _boidMaxForce
	 *           the boidMaxForce to set
	 */
	public void setMaxForce(float _boidMaxForce)
	{
		if (_boidMaxForce >= 0.0f)
		{
			maxForce = _boidMaxForce;
		}

	}

	/**
	 * @param _boidWanderDistance
	 *           the boidWanderDistance to set
	 */
	public void setWanderDistance(float _boidWanderDistance)
	{
		if (_boidWanderDistance > 0.0f)
		{
			wanderDistance = _boidWanderDistance;
		}
	}

	/**
	 * @param _boidWanderRadius
	 *           the boidWanderRadius to set
	 */
	public void setWanderRadius(float _boidWanderRadius)
	{
		if (_boidWanderRadius > 0.0f)
		{
			wanderRadius = _boidWanderRadius;
		}
	}

	/**
	 * @param _boidWanderOffset
	 *           the boidWanderOffset to set
	 */
	public void setWanderOffset(float _boidWanderOffset)
	{
		if (_boidWanderOffset > 0.0f)
		{
			wanderOffset = _boidWanderOffset;
		}
	}

	/**
	 * @param _boidApproachRadius
	 *           the boidApproachRadius to set
	 */
	public void setApproachRadius(float _boidApproachRadius)
	{
		if (_boidApproachRadius > 0.0f)
		{
			approachRadius = _boidApproachRadius;
		}
	}

	/**
	 * @param _boidFleeRadius
	 *           the boidFleeRadius to set
	 */
	public void setFleeRadius(float _boidFleeRadius)
	{
		if (_boidFleeRadius > 0.0f)
		{
			fleeRadius = _boidFleeRadius;
		}
	}
}
